.\" Copyright (c) 2021 Joseph Koshy.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS''
.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
.\" THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
.\" OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
.\" THE POSSIBILITY OF SUCH DAMAGE.
.\"
.\" $Id: elf_getversion.3 3956 2022-03-12 12:39:30Z jkoshy $
.\"
.Dd March 7, 2021
.Dt ELF_GETVERSION 3
.Os
.Sh NAME
.Nm elf_getversion
.Nd retrieve the operating version for an ELF object
.Sh LIBRARY
.Lb libelf
.Sh SYNOPSIS
.In libelf.h
.Ft unsigned int
.Fn elf_getversion "Elf *elf"
.Sh DESCRIPTION
.Em Important :
The function
.Fn elf_getversion
is an extension to the
.Xr ELF 3
API.
Applications that need to be portable to other implementations of
.Li libelf
should take care not to use this function.
.Pp
The function
.Fn elf_getversion
returns the operating version for the ELF descriptor pointed to by
argument
.Fa elf .
.Pp
This descriptor must have been allocated by a previous call to one of
the functions that return an ELF descriptor, such as
.Xr elf_begin 3 ,
.Xr elf_memory 3 ,
.Xr elf_open 3
and
.Xr elf_openmemory 3 .
The object associated with the descriptor
.Fa elf
should be an ELF object.
.Sh RETURN VALUES
The function returns the operating version for the ELF object if
successful or
.Dv EV_NONE
if an error occurred.
.Sh COMPATIBILITY
This function is an extension to the
.Xr ELF 3
API set.
.Sh ERRORS
This function can fail with the following errors:
.Bl -tag -width "[ELF_E_ARGUMENT]"
.It Bq Er ELF_E_ARGUMENT
The argument
.Fa elf
was
.Dv NULL .
.It Bq Er ELF_E_ARGUMENT
The underlying object referenced by the descriptor
.Fa elf
was not an ELF object.
.El
.Sh SEE ALSO
.Xr elf 3 ,
.Xr elf_begin 3 ,
.Xr elf_errno 3 ,
.Xr elf_version 3
